# 建立一个名为libmymethod.so的动态库
dy-lib=libmymethod.so 
# 建立一个名为libmath.a的静态库
static-lib=libmymath.a

.PHONY:all
all: $(dy-lib) $(static-lib)

$(dy-lib):mylog.o myprint.o
# 生成动态库使用gcc
# shared生成共享库
	gcc -shared -o $@ $^
mylog.o:mylog.c
# fPIC产生位置无关码
	gcc -fPIC -c $^
myprint.o:myprint.c
	gcc -fPIC -C $^

$(static-lib):mymath.o
# 使用ar命令将目标文件(.o)打包，rc表示replace和create
# 即将后面的目标文件全部打包传入前者，没有就创建，有就替换
	ar -rc $@ $^
mymath.o:mymath.c
# -c:汇编完成后停止，不进行链接
	gcc -c $^

.PHONY:clean
clean:
	rm -rf *.o *.a *.so mylib 

.PHONY:output
output:
	mkdir -p mylib/include
	mkdir -p mylib/lib
	cp *.h mylib/include
	cp *.a mylib/lib
	cp *.so mylib/lib 
